import java.util.Scanner;

public class No1_二维数组查找 {
    //时间复杂度O(a+b)
    public boolean Find(int target,int [][] array){
        if(array.length==0) return false;
        //定义行列数，表示出右上角元素
        int row=0, clo=array[0].length-1;
        //row应小于二维数组行数，clo应大等于0
        while(row<=array.length-1&&clo>=0){
            if(target==array[row][clo]){
                return true;
            } else if(target>array[row][clo]){
                row++;
            } else{
                clo--;
            }
        }
        return false;
    }
    //时间复杂度O(a*b)
    public boolean Find1(int target,int [][] arr){
        if(arr.length==0) return false;
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[0].length;j++){
                if(target==arr[i][j]) return true;
            }
        }
        return false;
    }

    //主函数
    public static void main(String[] args) {
        No1_二维数组查找 n=new No1_二维数组查找();
        Scanner sc=new Scanner(System.in);
        int a,b=0;
        //输入行列
        a=sc.nextInt();
        b=sc.nextInt();
        int [][] arr=new int[a][b];
        for(int i=0;i<a;i++)
        {
            for(int j=0;j<b;j++)
            {
                //输入所需矩阵
                arr[i][j]=sc.nextInt();
            }
        }
        for(int i=0;i<=a*b;i++){
            //输入目标值
            int target=sc.nextInt();
            System.out.println(n.Find1(target,arr));
        }

    }
}
